3 require_once 'include/SugarTheme/SugarTheme.php';
4 require_once 'include/dir_inc.php';
6 class SugarTestThemeUtilities
8 private static $_createdThemes = array();
10 private function __construct() {}
12 public static function createAnonymousTheme()
14 $themename = 'TestTheme'.mt_rand();
16 sugar_mkdir("themes/$themename/images",null,true);
17 sugar_mkdir("themes/$themename/css",null,true);
18 sugar_mkdir("themes/$themename/js",null,true);
19 sugar_mkdir("themes/$themename/tpls",null,true);
21 sugar_file_put_contents("themes/$themename/css/style.css","h2 { display: inline; }");
22 sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
23 sugar_file_put_contents("themes/$themename/js/style.js",'var dog = "cat";');
24 sugar_touch("themes/$themename/images/Accounts.gif");
25 sugar_touch("themes/$themename/images/fonts.big.icon.gif");
26 sugar_touch("themes/$themename/tpls/header.tpl");
28 $themedef = "<?php\n";
29 $themedef .= "\$themedef = array(\n";
30 $themedef .= "'name' => '$themename',";
31 $themedef .= "'dirName' => '$themename',";
32 $themedef .= "'description' => '$themename',";
33 $themedef .= "'version' => array('regex_matches' => array('.*')),";
35 sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
37 self::$_createdThemes[] = $themename;
39 SugarThemeRegistry::buildRegistry();
44 public static function createAnonymousOldTheme()
46 $themename = 'TestTheme'.mt_rand();
48 sugar_mkdir("themes/$themename/images",null,true);
49 sugar_mkdir("themes/$themename/css",null,true);
50 sugar_mkdir("themes/$themename/js",null,true);
51 sugar_mkdir("themes/$themename/tpls",null,true);
53 sugar_file_put_contents("themes/$themename/css/style.css","h2 { display: inline; }");
54 sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
55 sugar_file_put_contents("themes/$themename/js/style.js",'var dog = "cat";');
56 sugar_touch("themes/$themename/images/Accounts.gif");
57 sugar_touch("themes/$themename/images/fonts.big.icon.gif");
58 sugar_touch("themes/$themename/tpls/header.tpl");
60 $themedef = "<?php\n";
61 $themedef .= "\$themedef = array(\n";
62 $themedef .= "'name' => '$themename',";
63 $themedef .= "'dirName' => '$themename',";
64 $themedef .= "'description' => '$themename',";
65 $themedef .= "'version' => array('regex_matches' => array('5.5.1')),";
67 sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
69 self::$_createdThemes[] = $themename;
71 SugarThemeRegistry::buildRegistry();
76 public static function createAnonymousCustomTheme(
80 if ( empty($themename) )
81 $themename = 'TestThemeCustom'.mt_rand();
83 create_custom_directory("themes/$themename/images/");
84 create_custom_directory("themes/$themename/css/");
85 create_custom_directory("themes/$themename/js/");
87 sugar_touch("custom/themes/$themename/css/style.css");
88 sugar_touch("custom/themes/$themename/js/style.js");
89 sugar_touch("custom/themes/$themename/images/Accounts.gif");
90 sugar_touch("custom/themes/$themename/images/fonts.big.icon.gif");
92 $themedef = "<?php\n";
93 $themedef .= "\$themedef = array(\n";
94 $themedef .= "'name' => 'custom $themename',";
95 $themedef .= "'dirName' => '$themename',";
96 $themedef .= "'description' => 'custom $themename',";
97 $themedef .= "'version' => array('regex_matches' => array('.*')),";
99 sugar_file_put_contents("custom/themes/$themename/themedef.php",$themedef);
101 self::$_createdThemes[] = $themename;
103 SugarThemeRegistry::buildRegistry();
108 public static function createAnonymousChildTheme(
112 $themename = 'TestThemeChild'.mt_rand();
114 sugar_mkdir("themes/$themename/images",null,true);
115 sugar_mkdir("themes/$themename/css",null,true);
116 sugar_mkdir("themes/$themename/js",null,true);
118 sugar_file_put_contents("themes/$themename/css/style.css","h3 { display: inline; }");
119 sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
120 sugar_file_put_contents("themes/$themename/js/style.js",'var bird = "frog";');
122 $themedef = "<?php\n";
123 $themedef .= "\$themedef = array(\n";
124 $themedef .= "'name' => '$themename',";
125 $themedef .= "'dirName' => '$themename',";
126 $themedef .= "'parentTheme' => '".$parentTheme."',";
127 $themedef .= "'description' => '$themename',";
128 $themedef .= "'version' => array('regex_matches' => array('.*')),";
130 sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
132 self::$_createdThemes[] = $themename;
134 SugarThemeRegistry::buildRegistry();
139 public static function removeAllCreatedAnonymousThemes()
141 foreach (self::getCreatedThemeNames() as $name ) {
142 if ( is_dir('themes/'.$name) )
143 rmdir_recursive('themes/'.$name);
144 if ( is_dir('custom/themes/'.$name) )
145 rmdir_recursive('custom/themes/'.$name);
146 if ( is_dir('cache/themes/'.$name) )
147 rmdir_recursive('cache/themes/'.$name);
150 SugarThemeRegistry::buildRegistry();
153 public static function getCreatedThemeNames()
155 return self::$_createdThemes;